import { httpGet, httpPost, httpPut, httpDel } from "@/appBase/request"
import { toData, toPageData, toPageQueryParam } from "@/appBase/utils"

/**
 * 查询资源列表
 * @param {Object} queryParam
 * @param {String} queryParam.categoryId 分类id
 * @param {Number} queryParam.status 状态(1-正常 -1停用)
 * @param {String} queryParam.tags 标签
 * @param {String} queryParam.title 标题
 * @param {String} queryParam.typeCode 资源类型编码
 * @param {String} queryParam.beginTime 开始时间
 * @param {String} queryParam.endTime 结束时间
 * @param {Object} pageParam
 * @param {Number} pageParam.pageNo 
 * @param {Number} pageParam.pageSize 
 */
export function queryResFileList(queryParam, pageParam) {
    return httpGet(`/res/curriculum/list`, toPageQueryParam(queryParam, pageParam)).then((result) => toPageData(result, pageParam)).then((result) => {
        return result;
    });
}

/**
 * 添加资源文件
 * @param {Object} params
 * @param {String} params.id
 * @param {String} params.categoryId 分类ID
 * @param {String} params.description 描述
 * @param {String} params.picUrl 图片地址
 * @param {Number} params.status 状态(1-正常 -1停用)
 * @param {String} params.tags 标签
 * @param {String} params.title 标题
 */
export function addResFile(params) {
    return httpPost(`/res/curriculum`, params).then((result) => toData(result));
}

/**
 * 修改资源文件
 * @param {Object} params
 * @param {String} params.id
 * @param {String} params.categoryId 分类ID
 * @param {String} params.description 描述
 * @param {String} params.picUrl 图片地址
 * @param {Number} params.status 状态(1-正常 -1停用)
 * @param {String} params.tags 标签
 * @param {String} params.title 标题
 */
export function updateResFile(params) {
    return httpPut(`/res/curriculum`, params).then((result) => toData(result));
}

/**
 * 查询资源文件详情
 * @param {Object} params
 * @param {String} params.id
 */
export function queryResFileDetail(params) {
    return httpGet(`/res/curriculum/${params.id}`).then((result) => toData(result));
}

/**
 * 修改资源文件状态
 * @param {Object} params
 * @param {String} params.id
 * @param {Number} params.status -1=无效，1=有效
 */
export function updateResFileStatus(params) {
    return httpPut(`/res/curriculum/status`, params).then((result) => toData(result));
}

/**
 * 删除资源文件
 * @param {Object} params
 * @param {String} params.id
 */
export function delResFile(params) {
    return httpDel(`/res/curriculum/${params.id}`).then((result) => toData(result));
}

/**
 * 修改资源文件序号
 * @param {Object} params
 * @param {String} params.id
 * @param {Number} params.sortNo 排序号
 */
export function updateResFileSort(params) {
    return httpPut(`/res/curriculum/sort`, params).then((result) => toData(result));
}

/**
 * 查询视频列表
 * @param {Object} queryParam
 * @param {String} queryParam.categoryId 分类id
 * @param {Number} queryParam.status 状态(1-正常 -1停用)
 * @param {String} queryParam.tags 标签
 * @param {String} queryParam.title 标题
 * @param {String} queryParam.beginTime 开始时间
 * @param {String} queryParam.endTime 结束时间
 * @param {Object} pageParam
 * @param {Number} pageParam.pageNo 
 * @param {Number} pageParam.pageSize 
 */
export function queryCMSVideoList(queryParam, pageParam) {
    return httpGet(`/cms/video/list`, toPageQueryParam(queryParam, pageParam)).then((result) => toPageData(result, pageParam)).then((result) => {
        return result;
    });
}

/**
 * 添加video文件
 * @param {Object} params
 * @param {String} params.id
 * @param {String} params.categoryId 分类ID
 * @param {String} params.description 描述
 * @param {String} params.videoUrl 视频
 * @param {String} params.picUrl 图片地址
 * @param {Number} params.status 状态(1-正常 -1停用)
 * @param {String} params.tags 标签
 * @param {String} params.title 标题
 */
export function addCMSVideo(params) {
    return httpPost(`/cms/video`, params).then((result) => toData(result));
}

/**
 * 修改video文件
 * @param {Object} params
 * @param {String} params.id
 * @param {String} params.categoryId 分类ID
 * @param {String} params.description 描述
 * @param {String} params.videoUrl 视频
 * @param {String} params.picUrl 图片地址
 * @param {Number} params.status 状态(1-正常 -1停用)
 * @param {String} params.tags 标签
 * @param {String} params.title 标题
 */
export function updateCMSVideo(params) {
    return httpPut(`/cms/video`, params).then((result) => toData(result));
}

/**
 * 查询video详情
 * @param {Object} params
 * @param {String} params.id
 */
export function queryCMSVideoDetail(params) {
    return httpGet(`/cms/video/${params.id}`).then((result) => toData(result));
}

/**
 * 修改video状态
 * @param {Object} params
 * @param {String} params.id
 * @param {Number} params.status -1=无效，1=有效
 */
export function updateCMSVideoStatus(params) {
    return httpPut(`/cms/video/status`, params).then((result) => toData(result));
}

/**
 * 删除video文件
 * @param {Object} params
 * @param {String} params.id
 */
export function delCMSVideo(params) {
    return httpDel(`/cms/video/${params.id}`).then((result) => toData(result));
}

/**
 * 修改video序号
 * @param {Object} params
 * @param {String} params.id
 * @param {Number} params.sortNo 排序号
 */
export function updateCMSVideoSort(params) {
    return httpPut(`/cms/video/sort`, params).then((result) => toData(result));
}

/**
 * 查询新闻列表
 * @param {Object} queryParam
 * @param {String} queryParam.categoryId 分类id
 * @param {Number} queryParam.status 状态(1-正常 -1停用)
 * @param {String} queryParam.tags 标签
 * @param {String} queryParam.title 标题
 * @param {String} queryParam.beginTime 开始时间
 * @param {String} queryParam.endTime 结束时间
 * @param {Object} pageParam
 * @param {Number} pageParam.pageNo 
 * @param {Number} pageParam.pageSize 
 */
export function queryCMSNewsList(queryParam, pageParam) {
    return httpGet(`/cms/news/list`, toPageQueryParam(queryParam, pageParam)).then((result) => toPageData(result, pageParam)).then((result) => {
        return result;
    });
}

/**
 * 添加新闻
 * @param {Object} params
 * @param {String} params.id
 * @param {String} params.categoryId 分类ID
 * @param {String} params.content 内容
 * @param {String} params.picUrl 图片地址
 * @param {Number} params.status 状态(1-正常 -1停用)
 * @param {String} params.tags 标签
 * @param {String} params.title 标题
 */
export function addCMSNews(params) {
    return httpPost(`/cms/news`, params).then((result) => toData(result));
}

/**
 * 修改新闻
 * @param {Object} params
 * @param {String} params.id
 * @param {String} params.categoryId 分类ID
 * @param {String} params.content 内容
 * @param {String} params.picUrl 图片地址
 * @param {Number} params.status 状态(1-正常 -1停用)
 * @param {String} params.tags 标签
 * @param {String} params.title 标题
 */
export function updateCMSNews(params) {
    return httpPut(`/cms/news`, params).then((result) => toData(result));
}

/**
 * 查询新闻详情
 * @param {Object} params
 * @param {String} params.id
 */
export function queryCMSNewsDetail(params) {
    return httpGet(`/cms/news/${params.id}`).then((result) => toData(result));
}

/**
 * 修改新闻状态
 * @param {Object} params
 * @param {String} params.id
 * @param {Number} params.status -1=无效，1=有效
 */
export function updateCMSNewsStatus(params) {
    return httpPut(`/cms/news/status`, params).then((result) => toData(result));
}

/**
 * 删除新闻
 * @param {Object} params
 * @param {String} params.id
 */
export function delCMSNews(params) {
    return httpDel(`/cms/news/${params.id}`).then((result) => toData(result));
}

/**
 * 修改新闻置顶状态
 * @param {Object} params
 * @param {String} params.id
 * @param {Number} params.status 状态 1-置顶 -1-取消置顶
 */
export function updateCMSNewsTop(params) {
    return httpPut(`/cms/news/top`, params).then((result) => toData(result));
}

/**
 * 查询章节列表
 * @param {Object} queryParam
 * @param {String} queryParam.curriculumId 课程 id
 */
export function queryChapterList(queryParam) {
    return httpGet(`/res/curriculum/chapter/list`, queryParam).then((result) => toData(result))
}

/**
 * 添加章节文件
 * @param {Object} params
 * @param {String} params.id
 * @param {String} params.coursewareId 课件id
 * @param {String} params.curriculumId 课程id
 * @param {String} params.picUrl 图片地址
 * @param {String} params.fileUrl 文件地址
 * @param {String} params.fileSize 资源大小
 * @param {String} params.originalName 原始文件名称
 * @param {String} params.parentId 上级Id
 * @param {String} params.title 标题
 */
export function addChapter(params) {
    return httpPost(`/res/curriculum/chapter`, params).then((result) => toData(result));
}

/**
 * 修改章节文件
 * @param {Object} params
 * @param {String} params.id
 * @param {String} params.categoryId 分类ID
 * @param {String} params.description 描述
 * @param {String} params.picUrl 图片地址
 * @param {Number} params.status 状态(1-正常 -1停用)
 * @param {String} params.tags 标签
 * @param {String} params.title 标题
 */
export function updateChapter(params) {
    return httpPut(`/res/curriculum/chapter`, params).then((result) => toData(result));
}

/**
 * 删除章节
 * @param {Object} params
 * @param {String} params.id
 */
export function delChapter(params) {
    return httpDel(`/res/curriculum/chapter/${params.id}`).then((result) => toData(result));
}

/**
 * 查询章节详情
 * @param {Object} params
 * @param {String} params.id
 */
export function queryChapterDetail(params) {
    return httpGet(`/res/curriculum/chapter/${params.id}`).then((result) => toData(result));
}

/**
 * 修改章节序号
 * @param {Object} params
 * @param {String} params.maxId
 * @param {String} params.maxSortNo
 * @param {String} params.minId
 * @param {String} params.minSortNo
 * 
 */
export function updateChapterSort(params) {
    return httpPut(`/res/curriculum/chapter/sort`, params).then((result) => toData(result));
}